package org.demo.springbootdemo.Mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.demo.springbootdemo.Entity.User;
@Mapper

//@Mapper的作用：1. 把改文件交给spring容器
//                2.标注这个是mapper接口类


    public interface UserMapper {
    /**
     * 查询所有用户信息
     * <p>
     * 查询数据库中所有的用户记录，并返回一个用户列表。
     * 如果数据库中没有用户记录，则返回一个空列表。
     *
     * @return 返回一个包含所有用户信息的列表
     */
    List<User> findAll();

    /**
     * 根据用户ID查询用户信息
     * <p>
     * 通过用户ID在数据库中查询用户信息。如果找到匹配的用户，则返回该用户对象；
     * 如果没有找到匹配的用户，则返回null。
     *
     * @param id 用户唯一标识
     * @return 返回匹配的用户对象，如果未找到则返回null
     */
    User findById(Long id);

    /**
     * 插入用户信息
     * <p>
     * 将一个新的用户对象插入到数据库中。用户对象中的字段值将被保存到对应的数据库表列中。
     * 如果插入成功，返回影响的行数（通常是1）；如果插入失败，返回0。
     *
     * @param user 要插入的用户对象
     * @return 返回影响的行数
     */
    int insert(User user);

    /**
     * 更新用户信息
     * <p>
     * 根据用户ID更新用户信息。用户对象中的字段值将被更新到对应的数据库表列中。
     * 如果更新成功，返回影响的行数（通常是1）；如果更新失败（例如没有找到匹配的用户ID），返回0。
     *
     * @param user 要更新的用户对象
     * @return 返回影响的行数
     */
    int update(User user);

    /**
     * 根据用户ID删除用户信息
     * <p>
     * 通过用户ID在数据库中删除用户信息。如果删除成功，返回影响的行数（通常是1）；
     * 如果删除失败（例如没有找到匹配的用户ID），返回0。
     *
     * @param id 用户唯一标识
     * @return 返回影响的行数
     */
    int delete(Long id);
}




